package com.mastercard.assets.web.util.to;

import com.mastercard.assets.jpa.TblAsset;
import com.mastercard.assets.jpa.TblPreimplementacion;
import com.mastercard.assets.jpa.TblTarea;
import com.mastercard.assets.jpa.TblTareaPreimplementacion;
import com.mastercard.assets.util.dao.MasterCardDAO;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class MismaTarea {
    
    public static boolean revisarEjecutadas ( TblTareaPreimplementacion tblTareaPreimplementacion )
    {
       
        // toma el flujo tblPreimplementacion
	TblPreimplementacion tblPreimplementacion = tblTareaPreimplementacion.getTblPreimplementacion( ) ;
                
        List< TblTareaPreimplementacion > tblTareaPreimplementacionTotal = new ArrayList< TblTareaPreimplementacion >( ) ;
        
        int cveCampana = tblPreimplementacion.getTblCampania( ).getCveCampania( ) , cveTarea = 0 ;
        
        List< TblPreimplementacion > tblPreimplementacions = MasterCardDAO.getAllPreimplementationsWithCampana( cveCampana ) ;
        
        for ( TblPreimplementacion tblP : tblPreimplementacions )
        {
            int cvePreimplementacion = tblP.getCvePreimplementacion( ) ;
            
            List<TblTareaPreimplementacion> tblTP = MasterCardDAO.findAllTareaPreimplementacionByPreimplementacionAndWork( cvePreimplementacion ) ;
            
            for ( TblTareaPreimplementacion ttp : tblTP )
            {
                tblTareaPreimplementacionTotal.add( ttp ) ;
            }
            
        }
        
        for ( TblTareaPreimplementacion tp : tblTareaPreimplementacionTotal )
        {
            cveTarea = tp.getTblTarea( ).getCveTarea( ) ;
            
            if ( ( cveTarea == 20 || cveTarea == 33 ) && tp.getEjecutado( ) == 2 )
            {
                return false ;
            }else
                if ( ( cveTarea == 34 || cveTarea == 21 ) && tp.getEjecutado( ) == 2 )
                {
                    return false ;
                }
            
        }
        
//        MasterCardDAO.closeEntityManager( ) ;
        return true ;
    }
    
    public static boolean disparaTareaUno ( TblTarea tarea , TblPreimplementacion tblPreimplementacion )
    {
        int multiple = tarea.getMultiple( ) ;
                
        int cveCampana = tblPreimplementacion.getTblCampania( ).getCveCampania( ) ;
        
        // si la terea se debe ejecutar para cada asset de la campaña
        if ( multiple == 2 ){
            return true ;
        }else{
        // si la tarea se ejecuta por campaña
        // verifica si ya fue insertada
        List< TblTareaPreimplementacion > tblTP = MasterCardDAO.findAllTareaPreimplementacionByPreimplementacionByCampaign( cveCampana ) ;
        
        if ( tblTP.size( ) > 0 ) {
//            MasterCardDAO.closeEntityManager( ) ;
            return  false ;
        }
            
        
        }
//        MasterCardDAO.closeEntityManager( ) ;
        return true ;
    }
    
    
}
